import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import CreateGlobalState from '@state/createGlobalState/index.vue'
import UseAsyncState from '@state/useAsyncState/index.vue'
import UseDebouncedRefHistory from '@state/useDebouncedRefHistory/index.vue'
import UseStorage from '@state/useStorage/index.vue'
import UseManualRefHistory from '@state/useManualRefHistory/index.vue'

import { createWebHashHistory, createRouter } from 'vue-router'
import UseActiveElement from "@/components/elements/useActiveElement/index.vue";
import UseDocumentVisibility from "@/components/elements/useDocumentVisibility/index.vue";
import UseDraggable from "@/components/elements/useDraggable/index.vue";
import UseFileUpload from "@/components/elements/useFileUpload/index.vue";
import UseElementBounding from "@/components/elements/useElementBounding/index.vue";
import UseElementSize from "@/components/elements/useElementSize/index.vue";
import UseElementVisibility from "@/components/elements/useElementVisibility/index.vue";
import UseIntersectionObserver from "@/components/elements/useIntersectionObserver/index.vue";
import UseMouseInElement from "@/components/elements/useMouseInElement/index.vue";
import UseMutationObserver from "@/components/elements/useMutationObserver/index.vue";
import UseResizeObserver from "@/components/elements/useResizeObserver/index.vue";
import UseWindowFocus from "@/components/elements/useWindowFocus/index.vue";
import UseWindowScroll from "@/components/elements/useWindowScroll/index.vue";
import UseWindowSize from "@/components/elements/useWindowSize/index.vue";
import UseBroadcastChannel from "@/components/browser/useBroadcastChannel/index.vue";
import UseBrowserLocation from "@/components/browser/useBrowserLocation/index.vue";
import UseClipboard from "@/components/browser/useClipboard/index.vue";
import UseEventListener from "@/components/browser/useEventListener/index.vue";
import UseEyeDropper from "@/components/browser/useEyeDropper/index.vue";
import UseFileSystemAccess from "@/components/browser/useFileSystemAccess/index.vue";
import UseMediaQuery from "@/components/browser/useMediaQuery/index.vue";
import UseScriptTag from "@/components/browser/useScriptTag/index.vue";
import UseTextareaAutosize from "@/components/browser/useTextareaAutosize/index.vue";
import OnClickOutside from "@/components/sensors/onClickOutside/index.vue";
import OnClickOutside2 from "@/components/sensors/onClickOutside/index2.vue";
import UseElementByPoint from "@/components/sensors/useElementByPoint/index.vue";
import UseFocusWithin from "@/components/sensors/useFocusWithin/index.vue";
import UseInfiniteScroll from "@/components/sensors/useInfiniteScroll/index.vue";
import UseMagicKeys from "@/components/sensors/useMagicKeys/index.vue";
import UseKeyModifier from "@/components/sensors/useKeyModifier/index.vue";
import UseUrlSearchParams from "@/components/browser/useUrlSearchParams/index.vue";

const routes = [
  { path: '/CreateGlobalState', component: CreateGlobalState },
  { path: '/UseAsyncState', component: UseAsyncState },
  { path: '/UseDebouncedRefHistory', component: UseDebouncedRefHistory },
  { path: '/UseManualRefHistory', component: UseManualRefHistory },
  { path: '/UseActiveElement', component: UseActiveElement },
  { path: '/UseDocumentVisibility', component: UseDocumentVisibility },
  { path: '/UseDraggable', component: UseDraggable },
  { path: '/UseFileUpload', component: UseFileUpload },
  { path: '/UseElementBounding', component: UseElementBounding },
  { path: '/UseElementSize', component: UseElementSize },
  { path: '/UseElementVisibility', component: UseElementVisibility },
  { path: '/UseIntersectionObserver', component: UseIntersectionObserver },
  { path: '/UseMouseInElement', component: UseMouseInElement },
  { path: '/UseMutationObserver', component: UseMutationObserver },
  { path: '/UseResizeObserver', component: UseResizeObserver },
  { path: '/UseWindowFocus', component: UseWindowFocus },
  { path: '/UseWindowScroll', component: UseWindowScroll },
  { path: '/UseWindowSize', component: UseWindowSize },
  { path: '/UseBroadcastChannel', component: UseBroadcastChannel },
  { path: '/UseBrowserLocation', component: UseBrowserLocation },
  { path: '/UseStorage', component: UseStorage },
  { path: '/UseEventListener', component: UseEventListener },
  { path: '/UseEyeDropper', component: UseEyeDropper },
  { path: '/UseFileSystemAccess', component: UseFileSystemAccess },
  { path: '/UseMediaQuery', component: UseMediaQuery },
  { path: '/UseScriptTag', component: UseScriptTag },
  { path: '/UseTextareaAutosize', component: UseTextareaAutosize },
  { path: '/OnClickOutside', component: OnClickOutside },
  { path: '/OnClickOutside2', component: OnClickOutside2 },
  { path: '/UseElementByPoint', component: UseElementByPoint },
  { path: '/UseFocusWithin', component: UseFocusWithin },
  { path: '/UseClipboard', component: UseClipboard },
  { path: '/UseMagicKeys', component: UseMagicKeys },
  { path: '/UseKeyModifier', component: UseKeyModifier },
  { path: '/UseInfiniteScroll', component: UseInfiniteScroll },
  { path: '/UseUrlSearchParams', component: UseUrlSearchParams }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes,
})

createApp(App).use(router).mount('#app')
